bitkeeper revision 1.734 (4034eab5pHmnxsktQQEh03xZcwCoJw)
authorsmh22@tempest.cl.cam.ac.uk <smh22@tempest.cl.cam.ac.uk>
Thu, 19 Feb 2004 16:56:21 +0000 (16:56 +0000)
committersmh22@tempest.cl.cam.ac.uk <smh22@tempest.cl.cam.ac.uk>
Thu, 19 Feb 2004 16:56:21 +0000 (16:56 +0000)
cciss fix

BitKeeper/etc/ignore
BitKeeper/etc/logging_ok
xen/drivers/block/Makefile
xen/drivers/block/cciss.c

index f6915983dbf084b05ab1d87e8aeefd53c777512b..8f37a6a5346a4089b529950dc7ce628e9df80abb 100644 (file)
@@ -539,3 +539,6 @@ xen/common/rbtree.o
 xen/drivers/block/cciss.o
 xen/drivers/block/cciss_scsi.o
 TAGS
+tools/xc/lib/xc_netbsd_build.o
+xen/arch/i386/pdb-stub.o
+xen/common/debug-linux.o
index e750fb487b0c7bc167f6710758c0920c2a2dd1a2..ea27340633c9bfeedafb6b0e608ac0bbd790449a 100644 (file)
@@ -29,6 +29,7 @@ rneugeba@wyvis.research
 rneugeba@wyvis.research.intel-research.net
 smh22@boulderdash.cl.cam.ac.uk
 smh22@labyrinth.cl.cam.ac.uk
+smh22@tempest.cl.cam.ac.uk
 smh22@uridium.cl.cam.ac.uk
 sos22@labyrinth.cl.cam.ac.uk
 tlh20@elite.cl.cam.ac.uk
index 574b7d2d79301e69e3ba0129527eb5a328d4da82..96eb9e1f5d08291c9435b15c53ad35c11dd471ca 100644 (file)
@@ -1,6 +1,14 @@
 
 include $(BASEDIR)/Rules.mk
 
+
+# SMH: need to ensure cciss init function called /after/ generic blkdev 
+# stuff in ll_rw_blk etc. Linux barking link-order invocation of init 
+# functions means we need to explicitly order things here. 
+OBJS := blkpg.o elevator.o ll_rw_blk.o xen_vbd.o genhd.o xen_block.o 
+OBJS += cciss.o cciss_scsi.o
+
+
 default: $(OBJS)
        $(LD) -r -o driver.o $(OBJS)
 
index 833fcaa54a396968eafd3c73089f2ec849769f11..0c49aae5d05dac2c3680eeb836226f9ee5a5e903 100644 (file)
@@ -1624,11 +1624,13 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
        }
        if (hba[ctlr]->drv[logvol].raid_level > 5)
                hba[ctlr]->drv[logvol].raid_level = RAID_UNKNOWN;
+
        printk(KERN_INFO "      heads= %d, sectors= %d, cylinders= %d RAID %s\n\n",
-               hba[ctlr]->drv[logvol].heads,
-               hba[ctlr]->drv[logvol].sectors,
-               hba[ctlr]->drv[logvol].cylinders, 
-               raid_label[hba[ctlr]->drv[logvol].raid_level]);
+              hba[ctlr]->drv[logvol].heads,
+              hba[ctlr]->drv[logvol].sectors,
+              hba[ctlr]->drv[logvol].cylinders, 
+              raid_label[hba[ctlr]->drv[logvol].raid_level]);
+
 
        /* special case for c?d0, which may be opened even when
           it does not "exist".  In that case, don't mess with usage count.
@@ -1644,6 +1646,7 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
 
        for(i=max_p-1; i>=0; i--) {
                int minor = start+i;
+
                invalidate_device(MKDEV(hba[ctlr]->major, minor), 1);
                gdev->part[minor].start_sect = 0;
                gdev->part[minor].nr_sects = 0;
@@ -1653,8 +1656,12 @@ static int register_new_disk(int ctlr, int opened_vol, __u64 requested_lun)
                hba[ctlr]->hardsizes[minor] = block_size;
        }
 
+
+
        ++hba[ctlr]->num_luns;
        gdev->nr_real = hba[ctlr]->highest_lun + 1;
+
+
        /* setup partitions per disk */
        grok_partitions(gdev, logvol, MAX_PART,
                        hba[ctlr]->drv[logvol].nr_blocks);
@@ -2422,7 +2429,7 @@ next:
                h->maxSG = seg; 
 
 #ifdef CCISS_DEBUG
-       printk(KERN_DEBUG "cciss: Submitting %d sectors in %d segments\n", sect, seg);
+       printk(KERN_DEBUG "cciss: Submitting %d sectors in %d segments\n", creq->nr_sectors, seg);
 #endif /* CCISS_DEBUG */
 
        c->Header.SGList = c->Header.SGTotal = seg;
@@ -2929,7 +2936,7 @@ static void cciss_getgeometry(int cntl_num)
        kfree(ld_buff);
        kfree(size_buff);
        kfree(inq_buff);
-}      
+}
 
 /* Function to find the first free pointer into our hba[] array */
 /* Returns -1 if no free entries are left.  */